#pragma once

#include <algorithm>
#include  "iostream"
#include  "vector"
#include  "stack"
#include  "unordered_map"
#include   "queue"

using namespace std;

// 1 将string 排序 7546
// 2 和原来的串对比找到第一个不一样的  7654--7564 6和5不一样因此转换后的事7645
// 98368-->98863
int maximumSwap(int num) {
    /////////-----//////////
    string res = to_string(num);
    string ret = res;
    sort(res.begin(), res.end(), [](char a, char b) {

        return a > b;
    });
    char resChar = 255;
    int resIndex = 0;

    for (int i = 0; i < res.size(); ++i) {
        if (res[i] != ret[i]) {
            resChar = res[i];
            resIndex = i;
            break;
        }
    }

    for (int i = 0; i < res.size(); ++i) {

        if (resChar == 255)
            break;

        if (ret[i] == resChar) {
            swap(ret[i], ret[resIndex]);
            break;
        }

    }


    return stoi(ret);
}